home *** CD-ROM | disk | FTP | other *** search
/ PC User 2002 July / Disc 1 / PCU0702CD1.iso / software / sfeflash / flies / en-us / ps_0 / register.cgi < prev    next >
Encoding:
Text File  |  2002-05-17  |  5.7 KB  |  217 lines

  1. #!/usr/local/bin/perl
  2.  
  3. use CGI qw/:standard :escape :unescape/;
  4.  
  5. $mailprog = '/bin/sendmail';
  6.  
  7. $reg_url = 'http://www.3d3.com/encrypt/regdb_register.cgi';
  8.  
  9. $email_alert = 'tech@3d3.com';                    # email in case of fatal error
  10.  
  11. $def_bgcolor = "#ffffd0";                        # default body colors
  12. $def_link_color ="#0033cc";
  13. $def_vlink_color ="#0033cc";
  14. $def_alink_color ="#cc3333";
  15. $def_text_color ="#000000";
  16.  
  17. &get_body_attributes;
  18.  
  19. # Start returning a page...
  20. print "Content-type: text/html\n\n";
  21.  
  22. # check required fields
  23. &check_required;
  24.  
  25. my($code) = param('code');                        # code if entered in registration screen by user
  26. if($code eq ' ') { $code = ''; }
  27. my($email) = param('email');                    # email if entered in registration screen by user
  28. if($email eq ' ') { $email = ''; }
  29. my($product) = param('product');                # product eg: Lite, Pro, Developer
  30. my($version) = param('version');                # major version eg: 4 for 4.40
  31. my($mversion) = param('mversion');                # minor version eg: 40 for 4.40
  32. my($language) = param('language');                # language eg: English, German, Japanese
  33. my($unlocker) = param('unlocker');                # unlock code generator: eg: slgen, sswrap.
  34.                                                 #   these are defined in regdb_register.cgi
  35. # print the body...
  36. my($body) =<<"__EOHTML__";
  37. <script language="JavaScript">
  38. <!--
  39. function validateForm()
  40. {
  41.     var errStr = "The following fields require values:\\n";
  42.     var bOk = true;
  43.     if(document.forms[0].email.value.indexOf("\@") == -1) {
  44.         errStr += "E-Mail\\n";
  45.         bOk = false;
  46.     }
  47.     if(document.forms[0].confirm_email.value.indexOf("\@") == -1) {
  48.         errStr += "E-Mail (confirm)\\n";
  49.         bOk = false;
  50.     }
  51.     if(document.forms[0].code.value=="") {
  52.         errStr += "Code\\n";
  53.         bOk = false;
  54.     }
  55.     if(!bOk) {
  56.         alert(errStr);
  57.     } else {
  58.         if(document.forms[0].email.value != document.forms[0].confirm_email.value) {
  59.             alert("'E-Mail' and 'E-Mail (confirm)' do not match!");
  60.             bOk = false;
  61.         }
  62.     }
  63.     return(bOk);
  64. }
  65.  
  66. //-->
  67. </script>
  68. <form action="$reg_url" method="post" onSubmit="return(validateForm());">
  69. <input type="hidden" name="bgcolor" value="$def_bgcolor">
  70. <input type="hidden" name="text_color" value="$def_text_color">
  71. <input type="hidden" name="link_color" value="$def_link_color">
  72. <input type="hidden" name="vlink_color" value="$def_vlink_color">
  73. <input type="hidden" name="alink_color" value="$def_alink_color">
  74. <input type="hidden" name="product" value="$product">
  75. <input type="hidden" name="version" value="$version">
  76. <input type="hidden" name="mversion" value="$mversion">
  77. <input type="hidden" name="language" value="$language">
  78. <input type="hidden" name="unlocker" value="$unlocker">
  79. <center>
  80. <table border="1" cellpadding="2"  bgcolor="#ffef90">
  81.     <tr>
  82.         <td>
  83.             <font face="Arial, Helvetica">E-Mail:</font>
  84.         </td>
  85.         <td>
  86.             <input type="text" size="35" maxlength="100" name="email" value="$email">
  87.         </td>
  88.     </tr>
  89.     <tr>
  90.         <td>
  91.             <font face="Arial, Helvetica">E-Mail (confirm):</font>
  92.         </td>
  93.         <td>
  94.             <input type="text" size="35" maxlength="100" name="confirm_email" value="$email">
  95.         </td>
  96.     </tr>
  97.     <tr>
  98.         <td>
  99.             <font face="Arial, Helvetica">Code:</font>
  100.         </td>
  101.         <td>
  102.             <input type="text" size="35" name="code" value="$code">
  103.         </td>
  104.     </tr>
  105. </table>
  106.  
  107. <br>
  108.  
  109. <input type="submit" value="Send"> <input type="reset" value="Clear">
  110. </center>
  111. </form>
  112. __EOHTML__
  113.  
  114. &print_html("Please fill in the form below to register your copy of ShopFactory.", $body);
  115.  
  116.  
  117. sub check_required {
  118.  
  119.     if( (!(param('product')) || param('product') eq ' ') ||
  120.         (!(param('version')) || param('version') eq ' ') ) {
  121.  
  122.         # product or version does not exist
  123.  
  124.         my($errmsg) =<<"__EOERR__";
  125. <p>The Product Name and Version information could not be correctly determined.</p>
  126.  
  127. <p>If you manually entered the URL http://www.3d3.com/encrypt/register.cgi,
  128. please press the "Register" button on the ShopFactory start up screen
  129. instead of doing this.</p>
  130. __EOERR__
  131.  
  132.         &print_html("Error: Can't determine Product and Version", $errmsg);
  133.         &send_error_report('Product and/or Version not specified');
  134.  
  135.         exit;
  136.     }
  137. }
  138.  
  139. sub send_error_report {
  140.     my($error) = @_;
  141.     my($body);
  142.  
  143.     $body  = "$date\n";
  144.     $body .= "Error: $error\n";
  145.  
  146.     $body .= "\n----- Param Info -----\n\n";
  147.  
  148.     my (@names) = param;
  149.     for $name (@names) {
  150.         $body .= "$name = " . param($name) . "\n";
  151.     }
  152.  
  153.     $body .= "\n----- UA Info -----\n\n";
  154.     $body .= "Browser: $ENV{'HTTP_USER_AGENT'}\n";
  155.     $body .= "Remote Host: $ENV{'REMOTE_HOST'}\n";
  156.     $body .= "Remote Address: $ENV{'REMOTE_ADDR'}\n";
  157.  
  158.     &sendmail($email_alert,
  159.         "\"register.cgi\" <$email_alert>",
  160.         "register.cgi error!",
  161.         $body);
  162. }
  163.  
  164. sub print_html {
  165.     my($title, $desc) = @_;
  166.  
  167.     print "<html>\n<body";
  168.     print " bgcolor=\"$def_bgcolor\" link=\"$def_link_color\" vlink=\"$def_vlink_color\" alink=\"$def_alink_color\" text=\"$def_text_color\"";
  169.     print ">\n";
  170.  
  171.     print <<"__EOHTML__";
  172. <center>
  173. <table border="0" cellpadding="0" cellspacing="0" width="540">
  174.     <tr>
  175.         <td>
  176.             <font face="Arial, Helvetica">
  177.             <center><h4>$title</h4></center>
  178.             $desc
  179.             </font>
  180.         </td>
  181.     </tr>
  182. </table>
  183. </center>
  184. </body>
  185. </html>
  186. __EOHTML__
  187. }
  188.  
  189. sub get_body_attributes {
  190.     if (param('bgcolor')) {
  191.         $def_bgcolor = param('bgcolor');
  192.     }
  193.     if (param('link_color')) {
  194.         $def_link_color = param('link_color');
  195.     }
  196.     if (param('vlink_color')) {
  197.         $def_vlink_color = param('vlink_color');
  198.     }
  199.     if (param('alink_color')) {
  200.         $def_alink_color = param('alink_color');
  201.     }
  202.     if (param('text_color')) {
  203.         $def_text_color = param('text_color');
  204.     }
  205. }
  206.  
  207. sub sendmail {
  208.     my($to, $from, $subject, $body) = @_;
  209.  
  210.     open (MAIL, "|$mailprog -t -oi") || return 0;
  211.     print MAIL "To: $to\n";
  212.     print MAIL "From: $from\n";
  213.     print MAIL "Subject: $subject\n\n";
  214.     print MAIL "$body\n";
  215.     close MAIL;
  216.     return 1;
  217. }